home *** CD-ROM | disk | FTP | other *** search
/ Night Owl 6 / Night Owl's Shareware - PDSI-006 - Night Owl Corp (1990).iso / 031a / adg_1_3.zip / README.TXT < prev    next >
Text File  |  1991-03-04  |  16KB  |  302 lines

  1.  
  2. Windows 3: A Developer's Guide Source Code Diskettes
  3. ==============================================================================
  4.  
  5.  
  6. The three diskettes included with this book contain the source code
  7. for all of the sample applications presented.  Each directory name
  8. identifies the name of the sample application.  The extension of each
  9. directory indicates the chapter in the book that described the
  10. program.  Below is a list of the directories contained on the
  11. diskettes:
  12.  
  13. Dsk  SubDirectory  Chp  Description
  14. ---  ------------  ---  ----------------------------------------------------
  15.  1   VOYEUR.01      1   Voyeur application.  Demonstrates window attribute
  16.                         information.
  17.  
  18.  1   PMREST.02      2   Program Manager Restore application.  Demonstrates
  19.                         window subclassing.
  20.  
  21.  1   NOALPHA.02     2   NoAlpha Edit Control application.  Demonstrates
  22.                         window superclassing.
  23.  
  24.  1   DLGTECH.03     3   Dialog Box Techniques application.  Demonstrates how
  25.                         to change the tab order of child controls, add
  26.                         controls to a dialog box after it has been created,
  27.                         expand a dialog box, how to use a ModalLess dialog
  28.                         box, how to create modal and modeless dialog box
  29.                         templates at run-time.
  30.  
  31.  2   METER.04       4   Meter custom child control DLL.  Demonstrates how to
  32.                         create a custom child control and use it with the
  33.                         Windows SDK Dialog Editor.  This control is used by
  34.                         the CUSTCNTL.EXE program (Chapter 4) and the
  35.                         SETUP.EXE application (Chapter 8).
  36.  
  37.  2   SPIN.04        4   Spin custom child control DLL.  Demonstrates how to
  38.                         create a custom child control and use it with the
  39.                         Windows SDK Dialog Editor.  This control is used by
  40.                         the CUSTCNTL.EXE program (Chapter 4)
  41.  
  42.  2   CUSTCNTL.04    4   Custom child control application.  Demonstrates the
  43.                         usage of the METER and SPIN controls also presented
  44.                         in this chapter.
  45.  
  46.  2   PRINT.05       5   Printer setup application.  Demonstrates how to
  47.                         display a printer's settings dialog box and how to
  48.                         print from your application using the user's
  49.                         selected settings.
  50.  
  51.  2   SCRNBLNK.06    6   Screen blanking Utility.  Demonstrates how to use
  52.                         window hooks to by sensing when the user has been
  53.                         idle for a given period of time and blanking the
  54.                         computer's screen.
  55.  
  56.  2   ECHO.06        6   User input recording and playback facility.
  57.                         Demonstrates how to create an application similar to
  58.                         the RECORDER.EXE program supplied with the runtime
  59.                         version of Windows.  This  program also shows how to
  60.                         trap the 'F1' key in a dialog box so that the Windows
  61.                         Help Engine may be invoked.
  62.  
  63.  3   MDI.07         7   MDI techniques application.  Demonstrates how to close
  64.                         maximized MDI Child windows, ignore mouse messages
  65.                         when activating an MDI Child window, implement a
  66.                         status bar and a ribbon, display menu option help in
  67.                         the status bar, create your own custom MDI Child
  68.                         window tiling algorithm, close an MDI application by
  69.                         filtering WM_QUERYENDSESSION and WM_ENDSESSION
  70.                         messages to the MDI Child windows.
  71.  
  72.  3   SETUP.08       8   Commercial application installation program.
  73.                         Demonstrates how to install your own application on
  74.                         the user's hard drive.  Application also demonstrates
  75.                         how to initiate a dynamic data exchange conversation
  76.                         with the Windows Program Manager application.  This
  77.                         program is used to install all of the source code for
  78.                         this book on your hard drive.  In addition, the METER
  79.                         custom child control from Chapter 4 is used to notify
  80.                         the user of the installation's progress.
  81.  
  82.  
  83. File Information List:
  84.  
  85. * * * * * * * Diskette #1 (Setup, Chapters 1 through 3) * * * * * * * * * * *
  86. Path Name                  Description
  87. -------------------------  ---------------------------------------------------
  88. \SETUP.EXE                 Program to install source code.
  89. \SETUP.INF                 Information file used by SETUP.EXE.
  90. \METER.DLL                 Dynamic-link library used by SETUP.EXE.
  91. \README.TXT                This text file.
  92. \MAKEALL.BAT               Makes all of the sample applications.
  93. \MAKEDD.BAT                Creates the three distribution diskettes.
  94. \COPYDIR.BAT               Called by the MAKEDD.BAT file.
  95. \NOWINDWS.H                Header file included by all source modules.
  96.  
  97. \VOYEUR.01\MAKEFILE        Makefile for Voyeur application.
  98. \VOYEUR.01\VOYEUR.C        Application source module.
  99. \VOYEUR.01\VOYEUR.DEF      Voyeur app definitions file.
  100. \VOYEUR.01\VOYEUR.DLG      Dialog box templates.
  101. \VOYEUR.01\VOYEUR.EXE      Voyeur application.
  102. \VOYEUR.01\VOYEUR.H        Application header file.
  103. \VOYEUR.01\VOYEUR.ICO      Application icon.
  104. \VOYEUR.01\VOYEUR.RC       Application resource file.
  105. \VOYEUR.01\DIALOG.H        Dialog box template defines.
  106. \VOYEUR.01\EYES.CUR        Voyeur eyes cursor for window peering.
  107.  
  108. \PMREST.02\MAKEFILE        Makefile for Program Manager Restore application.
  109. \PMREST.02\PMREST.C        Application source module.
  110. \PMREST.02\PMREST.DEF      PMRest app definitions file.
  111. \PMREST.02\PMREST.DLG      Dialog box templates.
  112. \PMREST.02\PMREST.EXE      PMRest application.
  113. \PMREST.02\PMREST.H        Application header module.
  114. \PMREST.02\PMREST.ICO      Application icon.
  115. \PMREST.02\PMREST.RC       Application resource file.
  116. \PMREST.02\DIALOG.H        Dialog box template defines.
  117.  
  118. \NOALPHA.03\MAKEFILE       Makefile for NoAlpha application.
  119. \NOALPHA.03\NOALPHA.C      Application source module.
  120. \NOALPHA.03\NOALPHA.DEF    NoAlpha app definitions file.
  121. \NOALPHA.03\NOALPHA.DLG    Dialog box templates.
  122. \NOALPHA.03\NOALPHA.EXE    NoAlpha application.
  123. \NOALPHA.03\NOALPHA.H      Application header module.
  124. \NOALPHA.03\NOALPHA.ICO    Application icon.
  125. \NOALPHA.03\NOALPHA.RC     Application resource file.
  126. \NOALPHA.03\DIALOG.H       Dialog box template defines.
  127. \NOALPHA.03\SUPERCLS.C     Window superclassing source module.
  128. \NOALPHA.03\SUPERCLS.H     Window superclassing header module.
  129.  
  130. \DLGTECH.03\MAKEFILE       Makefile for Dialog Techniques application.
  131. \DLGTECH.03\DLGTECH.C      Application source module.
  132. \DLGTECH.03\DLGTECH.DEF    DlgTech app definitions file.
  133. \DLGTECH.03\DLGTECH.DLG    Dialog box templates.
  134. \DLGTECH.03\DLGTECH.EXE    DlgTech application.
  135. \DLGTECH.03\DLGTECH.H      Application header module.
  136. \DLGTECH.03\DLGTECH.ICO    Application icon.
  137. \DLGTECH.03\DLGTECH.RC     Application resource file.
  138. \DLGTECH.03\DIALOG.H       Dialog box template defines.
  139. \DLGTECH.03\DLG-DYNA.C     Dynamic dialog box source module.
  140. \DLGTECH.03\DLG-DYNA.H     Dynamic dialog box header module.
  141. \DLGTECH.03\DLG-MDLS.C     ModalLess dialog box source module.
  142. \DLGTECH.03\DLG-MDLS.H     ModalLess dialog box header module.
  143. \DLGTECH.03\DLG-OPTS.C     Options dialog box source module.
  144. \DLGTECH.03\DLG-OPTS.H     Options dialog box header module.
  145.  
  146. * * * * * * * * * Diskette #2 (Chapters 4 through 6) * * * * * * * * * * * * *
  147. Path Name                  Description
  148. -------------------------  ---------------------------------------------------
  149. \METER.04\MAKEFILE         Makefile for METER custom control DLL.
  150. \METER.04\METER.C          DLL source module.
  151. \METER.04\METER.DEF        Meter DLL definitions file.
  152. \METER.04\METER.DLG        Dialog box templates.
  153. \METER.04\METER.DLL        Meter custom child control DLL.
  154. \METER.04\METER.H          DLL header module.
  155. \METER.04\METER.RC         DLL resource file.
  156. \METER.04\DIALOG.H         Dialog box template defines.
  157. \METER.04\METERDLG.C       Meter & Dialog Editor source module.
  158. \METER.04\CNTL-DE.C        Custom Control & Dialog Editor source module.
  159. \METER.04\CNTL-DE.H        Custom Control & Dialog Editor header module.
  160.  
  161. \SPIN.04\MAKEFILE          Makefile for SPIN custom control DLL.
  162. \SPIN.04\SPIN.C            DLL source module.
  163. \SPIN.04\SPIN.DEF          Spin DLL definitions file.
  164. \SPIN.04\SPIN.DLG          Dialog box templates.
  165. \SPIN.04\SPIN.DLL          Spin custom child control DLL.
  166. \SPIN.04\SPIN.H            DLL header module.
  167. \SPIN.04\SPIN.RC           DLL resource file.
  168. \SPIN.04\SPINDLG.C         Spin & Dialog Editor source module.
  169. \SPIN.04\CNTL-DE.C         Custom Control & Dialog Editor source module.
  170. \SPIN.04\CNTL-DE.H         Custom Control & Dialog Editor header module.
  171. \SPIN.04\DIALOG.H          Dialog box template defines.
  172.  
  173. \CUSTCNTL.04\MAKEFILE      Makefile for custom control demo application.
  174. \CUSTCNTL.04\CUSTCNTL.C    Application source module.
  175. \CUSTCNTL.04\CUSTCNTL.DEF  Custom Control app definitions file.
  176. \CUSTCNTL.04\CUSTCNTL.DLG  Dialog box templates.
  177. \CUSTCNTL.04\CUSTCNTL.EXE  CustCntl application.
  178. \CUSTCNTL.04\CUSTCNTL.H    Application header module.
  179. \CUSTCNTL.04\CUSTCNTL.ICO  Application icon.
  180. \CUSTCNTL.04\CUSTCNTL.RC   Application resource file.
  181. \CUSTCNTL.04\DIALOG.H      Dialog box template defines.
  182. \CUSTCNTL.04\METER.DLL     Meter custom child control DLL.
  183. \CUSTCNTL.04\SPIN.DLL      Spin custom child control DLL.
  184.  
  185. \PRINT.05\MAKEFILE         Makefile for Printer Setup application.
  186. \PRINT.05\PRINT.C          Application source module.
  187. \PRINT.05\PRINT.DEF        Print definitions file.
  188. \PRINT.05\PRINT.DLG        Dialog box templates.
  189. \PRINT.05\PRINT.EXE        Print application.
  190. \PRINT.05\PRINT.H          Application header module.
  191. \PRINT.05\PRINT.ICO        Application icon.
  192. \PRINT.05\PRINT.RC         Application resource file.
  193. \PRINT.05\DIALOG.H         Dialog box template defines.
  194. \PRINT.05\PRINTSTP.C       Printer Setup dialog box source module.
  195. \PRINT.05\PRINTSTP.H       Printer Setup dialog box header module.
  196.  
  197. \SCRNBLNK.06\MAKEFILE      Makefile for Screen blanking application.
  198. \SCRNBLNK.06\SCRNBLNK.C    Application source module.
  199. \SCRNBLNK.06\SCRNBLNK.DEF  ScrnBlnk app definitions file.
  200. \SCRNBLNK.06\SCRNBLNK.DLG  Dialog box templates.
  201. \SCRNBLNK.06\SCRNBLNK.EXE  ScrnBlnk application.
  202. \SCRNBLNK.06\SCRNBLNK.H    Application header module.
  203. \SCRNBLNK.06\SCRNBLNK.ICO  Application icon.
  204. \SCRNBLNK.06\SCRNBLNK.RC   Application resource file.
  205. \SCRNBLNK.06\DIALOG.H      Dialog box template defines.
  206. \SCRNBLNK.06\SB-DLL.C      DLL source module.
  207. \SCRNBLNK.06\SB-DLL.DEF    SB-DLL DLL definitions file.
  208. \SCRNBLNK.06\SB-DLL.DLG    Dialog box templates.
  209. \SCRNBLNK.06\SB-DLL.DLL    SB-DLL DLL.
  210. \SCRNBLNK.06\SB-DLL.H      DLL header module.
  211. \SCRNBLNK.06\SB-DLL.LIB    Library file for SB-DLL.DLL.
  212. \SCRNBLNK.06\SB-DLL.MKF    Makefile for Screen blanking DLL.
  213. \SCRNBLNK.06\SB-DLL.RC     DLL resource file.
  214.  
  215. \ECHO.06\MAKEFILE          Makefile for Echo application.
  216. \ECHO.06\ECHO.C            Application source module.
  217. \ECHO.06\ECHO.DEF          Echo app definitions file.
  218. \ECHO.06\ECHO.DLG          Dialog box templates.
  219. \ECHO.06\ECHO.EXE          Echo application.
  220. \ECHO.06\ECHO.H            Application header module.
  221. \ECHO.06\ECHO.ICO          Application icon.
  222. \ECHO.06\ECHO.RC           Application resource file.
  223. \ECHO.06\DIALOG.H          Dialog box template defines.
  224. \ECHO.06\RECORDER.C        DLL source module.
  225. \ECHO.06\RECORDER.DEF      Recorder DLL definitions file.
  226. \ECHO.06\RECORDER.DLL      RECORDER DLL.
  227. \ECHO.06\RECORDER.H        DLL header module.
  228. \ECHO.06\RECORDER.LIB      Library file for RECORDER.DLL.
  229. \ECHO.06\RECORDER.MKF      Makefile for RECORDER DLL.
  230.  
  231. * * * * * * * * * Diskette #3 (Chapters 7 through 8) * * * * * * * * * * * * *
  232. Path Name                  Description
  233. -------------------------  ---------------------------------------------------
  234. \MDI.07\MAKEFILE           Makefile for MDI application.
  235. \MDI.07\MDI.C              Application source module.
  236. \MDI.07\MDI.DEF            MDI app definitions file.
  237. \MDI.07\MDI.DLG            Dialog box templates.
  238. \MDI.07\MDI.EXE            MDI application.
  239. \MDI.07\MDI.H              Application header module.
  240. \MDI.07\MDI.ICO            Application icon.
  241. \MDI.07\MDI.RC             Application resource file.
  242. \MDI.07\FRAME.C            Frame window source module.
  243. \MDI.07\DIALOG.H           Dialog box template defines.
  244. \MDI.07\CHART.C            Chart MDI child window source module.
  245. \MDI.07\CHART.ICO          Chart MDI Child icon.
  246. \MDI.07\SHEET.C            Sheet MDI child window source module.
  247. \MDI.07\SHEET.ICO          Sheet MDI Child icon.
  248.  
  249. \SETUP.08\MAKEFILE         Makefile for Setup application.
  250. \SETUP.08\SETUP.C          Application source module.
  251. \SETUP.08\SETUP.DEF        Setup app definitions file.
  252. \SETUP.08\SETUP.DLG        Dialog box templates.
  253. \SETUP.08\SETUP.EXE        Setup application.
  254. \SETUP.08\SETUP.H          Application header module.
  255. \SETUP.08\SETUP.ICO        Application icon.
  256. \SETUP.08\SETUP.INF        Setup information file.
  257. \SETUP.08\SETUP.RC         Application resource file.
  258. \SETUP.08\SETUPDLG.C       Dialog box source module.
  259. \SETUP.08\SETUPINF.C       SETUP.INF file handling source module.
  260. \SETUP.08\SETUPINF.H       SETUP.INF file handling header module.
  261. \SETUP.08\SETUPPM.C        Program Manager DDE conversation source module.
  262. \SETUP.08\DIALOG.H         Dialog box template defines.
  263. \SETUP.08\DISK.ICO         Switch disk dialog box icon.
  264.  
  265.  
  266.  
  267. The source files are in standard ASCII format, and have been compiled
  268. and tested using version 6.0(a) of the Microsoft C Compiler and the
  269. tools supplied with Version 3.0 of the Windows SDK.
  270.  
  271. Source code notes:
  272.  
  273. 1) All of the variable names are prefixed by one of the standard
  274.    prefixes explained on page xxii of the Microsoft Window Programmer's
  275.    Reference Volume 1.  However, I use the 'b' prefix to represent bytes
  276.    instead of BOOLean values and the 'f' prefix to represent BOOLean
  277.    values instead of bit flag values.  This is the same notation
  278.    recommended for OS/2 Presentation Manager programming.
  279.  
  280. 2) All global variables are prefixed with a single underscore
  281.    character.  This helps to make understanding a function easier
  282.    because any variable not preceded by an underscore is either a
  283.    parameter to the function or an 'auto' or 'static' local variable.
  284.  
  285. 3) When a function is declared, a space appears immediately before
  286.    the opening parenthesis.  For example:
  287.  
  288.                int FunctionName (int nX, int nY) { }
  289.                                ^ space character
  290.  
  291.    However, when calls to this function are made, the space is not
  292.    used.  For example:
  293.  
  294.                nZ = FunctionName(nX, nY);
  295.                                 ^ no space character
  296.  
  297.    The reason for doing this is so that you can locate a function
  298.    declaration in a source module very easily.  By requesting that
  299.    your program editor search for: "FunctionName " (notice the trailing
  300.    space), the editor will find the function itself instead of calls
  301.    to this function.
  302.